package com.umbr3lla.main.state.cards;

import java.util.Vector;

import com.umbr3lla.main.state.cards.mansion.EffectMansionCard;

public abstract class PlayerCard extends Card
{

	public enum EFFECT_RESPONSE
	{
		CAN_PLAY(),
		NA(),
		NOT_DECORATED();
	}
	
	protected int health;
	
	protected byte level1DecorationCost, 
				   level2DecorationCost;
	
	protected boolean level1Passive = false;
	protected boolean level2Passive = false;
	
	private Vector<Card> attachedCards = new Vector<Card>();
	
	public PlayerCard(String cardId, int health, 
			byte lvl1Cost, byte lvl2Cost, boolean lvl1Passive, boolean lvl2Passive)
	{
		super(cardId, CARD_TYPES.CHARACTER);
		this.health = health;
		this.level1DecorationCost = lvl1Cost;
		this.level2DecorationCost = lvl2Cost;
		this.level1Passive = lvl1Passive;
		this.level2Passive = lvl2Passive;
		
	}
	
	public abstract EFFECT_RESPONSE applyLevel1Decoration();
	public abstract EFFECT_RESPONSE applyLevel2Decoration();
	
	public abstract boolean playItem(ItemCard c);
	public abstract boolean playMansionItem(EffectMansionCard c);
	
//	public abstract void preFilterAmmoPlay(AmmoCard a);
//	public abstract void preFilterWeaponPlay(WeaponCard w);
//	public abstract void preFilterActionPlay(ActionCard a);
//	
//	public abstract void postFilterAmmoPlay(AmmoCard a);
//	public abstract void postFilterWeaponPlay(WeaponCard w);
//	public abstract void postFilterActionPlay(ActionCard a);

	
	public void playCardFromHand() {
		//dosnt make any sense to play a character
	}
	
	public void attachCard(Card cardToAttach)
	{
		attachedCards.add(cardToAttach);
	}
	
	
	
}
